using System;
using System.Collections.Generic;
using MongoDB.Bson;
using MongoDB.Driver;

namespace folhapagamento
{
	public class FolhaRepositorio
	{
		MongoDatabase db;
		public FolhaRepositorio(MongoDatabase db)
		{
			this.db = db;
		}
		
		public void Inserir(FolhaPagamento folha)
        {
            MongoCollection<FolhaPagamento> folhas = db.GetCollection<FolhaPagamento>("FolhaPagamento");
			folha.id = ObjectId.GenerateNewId();
            folhas.Insert(folha.ToBsonDocument());            
        }
		
		public void Alterar(FolhaPagamento folha)
		{
			MongoCollection<FolhaPagamento> folhas = db.GetCollection<FolhaPagamento>("FolhaPagamento");
			folhas.Save(folha.ToBsonDocument());
		}
		
		public FolhaPagamento LerUm(ObjectId id)
		{
			MongoCollection<FolhaPagamento> folhas = db.GetCollection<FolhaPagamento>("FolhaPagamento");
			return folhas.FindOneById(id);
		}
		
		public void Deletar(ObjectId id)
		{
			MongoCollection<FolhaPagamento> folhas = db.GetCollection<FolhaPagamento>("FolhaPagamento");
			var query = new QueryDocument("_id", id);
			folhas.Remove (query);
		}
		
		public IEnumerable<FolhaPagamento> LerTodos()
        {
            MongoCollection<FolhaPagamento> folhas = db.GetCollection<FolhaPagamento>("FolhaPagamento");
            return folhas.FindAll();
        }
	}
}

